package com.wyth.lottery.utils;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

/**
 * 
 * @author yanghl
 *
 */
public class BuildParamUtils {
	
	/**
	 * 把请求参数除md5、func和ip以外的所有参数按升序排序，
	 * 按先后顺序依次把各个参数的值拼接成一个字符串，追加加密key形成一个字符串，
	 * 对这个新生成的字符串进行md5加密得到32位字符串作为参数md5的值
	 * @param param 参数集合
	 * @param key 平台会为客户端分配唯一的加密key
	 * @return md5字符串
	 */
	public static String buildMd5(Map<String, String> param, String key){
		List<String> tempList = new ArrayList<String>();
		for (Map.Entry<String, String> entry : param.entrySet()) {
			tempList.add(entry.getKey());
		}
		java.util.Collections.sort(tempList);
		StringBuilder md5Str = new StringBuilder();
		for (String s : tempList) {
			if ("md5".equals(s) || "func".equals(s) || "ip".equals(s)) {
				continue;
			}
			md5Str.append(param.get(s));
		}
		md5Str.append(key);
		String currMd5 = Md5.Md5(md5Str.toString());//加密
		return currMd5;
	}
}
